package com.ecode.annotation.data.text;

import com.ecode.annotation.core.CodeDataParse;
import com.ecode.annotation.model.ErrorCodeDO;

import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * @ClassName TextCodeDataParse
 * @Author mjlft
 * @Date 2021/10/4 12:05
 * @Version 1.0
 * @Description 文本格式数据解析
 * 数据格式为code:msg 例如
 * SYS_ERROR:系统错误
 * APP_ERROR:应用错误
 */
public class TextCodeDataParse implements CodeDataParse {

    @Override
    public Set<ErrorCodeDO> parseStrToData(String srcData) {
        if(srcData == null || "".equals(srcData.trim())){
            throw new RuntimeException("配置数据无效，无法进行Text类型解析");
        }
        Set<ErrorCodeDO> result = Arrays.stream(srcData.split("\n")).map(tmp ->{
            String[]data = tmp.trim().split(":");
            ErrorCodeDO errorCodeDO = new ErrorCodeDO();
            errorCodeDO.setCode(data[0]);
            errorCodeDO.setMsg(data[1]);
            return errorCodeDO;
        }).collect(Collectors.toSet());
        return result;
    }
}
